

    let wxMethods = {
        // 获取appid
       getAppid(){
           $.post('/api/wxContent/appId', { company_id } ,function(result){
               wxMethods.getCode(result.data.corpid)
           });
           return false;
       },
       // 获取code
       getCode(appid) {
           var host = window.location.protocol + '//' + window.location.host;
           var url = encodeURI(host + '/chat-tool/chat.html?id=' + company_id);
           var href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${url}&response_type=code&scope=snsapi_base&state=#wechat_redirect`;
           window.location.href = href;
       },
  
       getUrlCode() {
           // 截取url中的code方法
           var url = location.search;
           var theRequest = new Object();
           if (url.indexOf('?') != -1) {
               var str = url.substr(1);
               var strs = str.split('&');
               for (var i = 0; i < strs.length; i++) {
                   theRequest[strs[i].split('=')[0]] = strs[i].split('=')[1];
               }
           }
           return theRequest;
       },
  
       // 获取userID
       getmyId(){
           $.post('/api/user', { company_id, code } ,function(result){
               
               if (result.status) {
                   localStorage.setItem('user_id', result.data.user_id);
                   //获取列表
                   wxMethods.getContent({});
                   wxMethods.getGroup();
               }
           });
       },
  
    //    // 获取分组
       getGroup(){
           $.post('/api/salesPatterGrpLst', { company_id } ,function(result){
  
               if (result.status == 1) {
                   for(let i = 0;i < result.data.list.length;i++){
                       $('#groupList').append(`<option value="${ result.data.list[i].group_id }">${ result.data.list[i].group_name }</option>`);
                   }
                   wxMethods.getContent({});
               }
              
           });
       },
       //获取列表
       getContent(datas){
           let type = $('.tabItem.active').attr('data-type'),
               data = {
                   company_id,
                   page : 1,
                   limit : 1000,
                   search: {
                      group_id : datas.group_id ? datas.group_id : '',
                      keywords : datas.keywords ? datas.keywords : ''
                   }
               };
           $.post('/api/salesPatterLst', data ,function(result){
               if (result.status == 1) {
                    $('.list').empty();
                    if(result.data.list.length > 0){
                       for(let i = 0;i < result.data.list.length;i++){
                           if(type == 1){ // 文本
                               $('.list').append(`<div class="w100 listItem">
                                   <div class="listItemLeft wordsCent">
                                       <span>问：${ result.data.list[i].question }</span>
                                       <span>答：${ result.data.list[i].answer }</span>
                                   </div>
                                   <div class="listItemRight">
                                       <button type="button" class="sendBtn" onclick="wxMethods.send('${JSON.stringify(result.data.list[i]).replace(/"/g, '&quot;')}');">发送</button>
                                   </div>
                               </div>`);
                           }
                      } 
                    }else{
                        $('.list').append(`<div class="w100 listItem"><p>暂无数据</p></div>`)
                    }
               }
              
           });
       },
        // 发送消息前获取配置参数
       send(item){
            $.post('/api/wxContent/jsSdkData', { company_id } ,function(result){
                console.log(result)
                if (result.status == 1) {
                    wx.config({
                        beta: true, // 必须这么写，否则wx.invoke调用形式的jsapi会有问题
                        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                        appId: result.data.appId, // 必填，企业微信的corpID
                        timestamp: result.data.timestamp, // 必填，生成签名的时间戳
                        nonceStr: result.data.nonceStr, // 必填，生成签名的随机串
                        signature: result.data.signature, // 必填，签名，见 附录-JS-SDK使用权限签名算法
                        jsApiList: ['sendChatMessage', 'getContext', 'getCurExternalContact','getCurExternalChat'] // 必填，需要使用的JS接口列表，凡是要调用的接口都需要传进来
                    });
                    wx.ready(function() {
                        // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
                        wxMethods.getCon(result.data.agent, JSON.parse(item));
                    });
                }
            });
       },
       //发送消息
       getCon(config, item){
           console.log(item)
        wx.agentConfig({
            corpid: config.corpid, // 必填，企业微信的corpid，必须与当前登录的企业一致
            agentid: config.agentid, // 必填，企业微信的应用id （e.g. 1000247）
            timestamp: config.timestamp, // 必填，生成签名的时间戳
            nonceStr: config.nonceStr, // 必填，生成签名的随机串
            signature: config.signature, // 必填，签名，见附录-JS-SDK使用权限签名算法
            jsApiList: ['sendChatMessage', 'getContext', 'getCurExternalContact','getCurExternalChat'], //必填
            success: function(res2) {
                //获取外部联系人/群id
                wx.invoke('getContext', {}, function(res3) {
                    if (res3.err_msg == 'getContext:ok') {
                        let entry = res3.entry, //返回进入H5页面的入口类型，目前有normal、contact_profile、single_chat_tools、group_chat_tools
                            d;
                            entry == 'single_chat_tools' ? d = 'getCurExternalContact' :  entry == 'group_chat_tools' ? d = 'getCurExternalChat' : d = '';
                            wx.invoke(d, {}, function(res5) {
                                console.log(res5)
                                if (res5.err_msg == `${d}:ok`) {
                                    wx.invoke('sendChatMessage', {
                                        msgtype: 'text', //消息类型，必填
                                        text: {
                                            content: item.answer //文本内容
                                        }
                                    });
                                }
                            })
                    } else {
                        //错误处理
                    }
                });

            },
            fail: function(err) {
                console.log(err);
            }
        });
       },
  
  
   }
  
   let code = wxMethods.getUrlCode().code,
       company_id = wxMethods.getUrlCode().id;
   if (localStorage.getItem('user_id')) {
       wxMethods.getContent({});
       wxMethods.getGroup();
   }else{
       if(company_id && code){
           wxMethods.getmyId();
       }else{
           wxMethods.getAppid();
       }
   }
  
   // 切换选项卡
   $(document).on('click','.tabItem',function(){
       let datas = {
               group_id : $('#groupList').val(),
               content_type : $(this).attr('data-type'),
               keyword : $('#searchKey').val()
           };
           
       $('.tabItem').removeClass('active');
       $(this).addClass('active');
       wxMethods.getContent(datas);
       
   })
    
   // 搜索
   $('#searchSend').click(function(){
        let datas = {
            group_id : $('#groupList').val(),
            keywords : $('#searchKey').val(),
        };
        wxMethods.getContent(datas);
   })
   
   // 切换分组 
   $('#groupList').change(function(){
       let datas = {
          group_id : $('#groupList').val(),
          keywords : $('#searchKey').val(),
        };
        wxMethods.getContent(datas);
   })
   
       
   
  